@obvi/blueprint 1.1.0 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/blueprint.js CHANGED
@@ -25,6 +25,9 @@ const THEME_BULB_ICON = [
25
25
  'M10 21H14',
26
26
  'M9.00082 15C9.00098 13 8.50098 12.5 7.50082 11.5C6.50067 10.5 6.02422 9.48689 6.00082 8C5.95284 4.95029 8.00067 3 12.0008 3C16.001 3 18.0488 4.95029 18.0008 8C17.9774 9.48689 17.5007 10.5 16.5008 11.5C15.501 12.5 15.001 13 15.0008 15',
27
27
  ]
28
+ const BLUEPRINT_LOGO_OUTLINE =
29
+ 'M7.3 19H12.7C14.3802 19 15.2202 19 15.862 18.673C16.4265 18.3854 16.8854 17.9265 17.173 17.362C17.5 16.7202 17.5 15.8802 17.5 14.2V9.1075C17.5 8.3982 17.5 8.04355 17.4222 7.70852C17.3531 7.41144 17.2392 7.12663 17.0843 6.86389C16.9096 6.56761 16.665 6.31078 16.1759 5.79716L13.0259 2.48966C12.5028 1.94045 12.2413 1.66585 11.9324 1.46921C11.6585 1.29489 11.3582 1.16618 11.0431 1.08809C10.6876 1 10.3084 1 9.55 1H7.3C5.61984 1 4.77976 1 4.13803 1.32698C3.57354 1.6146 3.1146 2.07354 2.82698 2.63803C2.5 3.27976 2.5 4.11984 2.5 5.8V14.2C2.5 15.8802 2.5 16.7202 2.82698 17.362C3.1146 17.9265 3.57354 18.3854 4.13803 18.673C4.77976 19 5.61984 19 7.3 19Z'
30
+ const BLUEPRINT_LOGO_FILL = 'M16 16H5V6L16 16ZM6.5 14.5H11.5L6.5 9.5V14.5Z'
28
31
 
29
32
  function metaSelector({ name, property } = {}) {
30
33
  if (property) return `meta[property="${property}"]`
@@ -103,6 +106,18 @@ function createChromeSvg(doc, pathD, size = 16) {
103
106
  return svg
104
107
  }
105
108
 
109
+ function createBlueprintLogo(doc) {
110
+ const svg = createChromeSvg(doc, BLUEPRINT_LOGO_OUTLINE, 20)
111
+ svg.setAttribute('viewBox', '0 0 20 20')
112
+ svg.classList.add('site-nav__logo')
113
+ const fill = doc.createElementNS('http://www.w3.org/2000/svg', 'path')
114
+ fill.setAttribute('d', BLUEPRINT_LOGO_FILL)
115
+ fill.setAttribute('fill', 'currentColor')
116
+ fill.setAttribute('stroke', 'none')
117
+ svg.append(fill)
118
+ return svg
119
+ }
120
+
106
121
  function injectScrollProgress(doc) {
107
122
  if (doc.querySelector('.scroll-progress')) return null
108
123
  const bar = doc.createElement('div')
@@ -131,9 +146,7 @@ function injectSiteNav(doc, win) {
131
146
  brand.href = brandHref
132
147
  brand.setAttribute('aria-label', `${brandLabel} home`)
133
148
 
134
- const logo = doc.createElement('span')
135
- logo.className = 'site-nav__logo'
136
- logo.setAttribute('aria-hidden', 'true')
149
+ const logo = createBlueprintLogo(doc)
137
150
 
138
151
  const wordmark = doc.createElement('span')
139
152
  wordmark.className = 'site-nav__wordmark'
@@ -905,15 +918,16 @@ function wireSearchPalette(doc, win) {
905
918
  })
906
919
  }
907
920
 
908
- function injectDocumentChrome(doc, win = doc.defaultView) {
921
+ function injectDocumentChrome(doc, win = doc.defaultView, navigationTree = []) {
909
922
  if (doc.body?.dataset.bpChromeReady === 'true') return
910
923
  const main = doc.querySelector('main')
911
924
  if (!main) return
912
925
 
913
- const sidebar = injectSidebar(doc, win)
926
+ const hasNavigation = navigationTree.length > 0
927
+ const sidebar = hasNavigation ? injectSidebar(doc, win) : null
914
928
  const chrome = [
915
929
  injectSiteNav(doc, win),
916
- injectScrollProgress(doc),
930
+ hasNavigation ? injectScrollProgress(doc) : null,
917
931
  sidebar ? injectSidebarToggle(doc) : null,
918
932
  sidebar,
919
933
  ].filter(Boolean)
@@ -931,6 +945,214 @@ function injectDocumentChrome(doc, win = doc.defaultView) {
931
945
  doc.body.dataset.bpChromeReady = 'true'
932
946
  }
933
947
 
948
+ // Close glyph (matches the chrome icon set used elsewhere).
949
+ const CITE_PANE_CLOSE_ICON =
950
+ 'M6.75827 17.2426L12.0009 12M17.2435 6.75736L12.0009 12M12.0009 12L6.75827 6.75736M12.0009 12L17.2435 17.2426'
951
+
952
+ // Build the cited-source side pane once, lazily, and append it to <body>. The
953
+ // pane is plain div/span chrome styled by site-nav.css; open/close is a class
954
+ // toggle so the CSS owns the slide and the sheet reflow.
955
+ function buildCitePane(doc) {
956
+ const port = doc.createElement('div')
957
+ port.className = 'bp-cite-pane-port'
958
+
959
+ // A div, not <aside>: the base layer styles bare semantic elements (aside
960
+ // carries a margin + border-left + padding-left), which would leak into the
961
+ // component's own chrome. Carry the role on the div instead — same as the
962
+ // detail-pane exploration this reuses.
963
+ const pane = doc.createElement('div')
964
+ pane.className = 'bp-cite-pane'
965
+ pane.setAttribute('role', 'complementary')
966
+ pane.setAttribute('aria-label', 'Cited source')
967
+ pane.tabIndex = -1
968
+
969
+ const head = doc.createElement('div')
970
+ head.className = 'bp-cite-pane__head'
971
+ const heading = doc.createElement('div')
972
+ heading.className = 'bp-cite-pane__heading'
973
+ const eyebrow = doc.createElement('span')
974
+ eyebrow.className = 'bp-cite-pane__eyebrow'
975
+ const loc = doc.createElement('button')
976
+ loc.type = 'button'
977
+ loc.className = 'bp-cite-pane__loc'
978
+ heading.append(eyebrow, loc)
979
+ const close = doc.createElement('button')
980
+ close.type = 'button'
981
+ close.className = 'bp-cite-pane__close'
982
+ close.setAttribute('aria-label', 'Close cited source')
983
+ close.append(createChromeSvg(doc, CITE_PANE_CLOSE_ICON))
984
+ head.append(heading, close)
985
+
986
+ const body = doc.createElement('div')
987
+ body.className = 'bp-cite-pane__body'
988
+ const swap = doc.createElement('div')
989
+ swap.className = 'bp-cite-pane__swap'
990
+ const source = doc.createElement('div')
991
+ source.className = 'bp-cite-pane__source'
992
+ swap.append(source)
993
+ body.append(swap)
994
+
995
+ pane.append(head, body)
996
+ port.append(pane)
997
+ doc.body.append(port)
998
+ return { port, pane, eyebrow, loc, source, swap, close }
999
+ }
1000
+
1001
+ // Advertise a side pane and promote <bp-cite> sources into it. The cite
1002
+ // component only emits "bp-cite-open"; this host owns the pane, so the popover
1003
+ // stays portable and the open-in-pane button shows (CSS gate) only here.
1004
+ function wireCitePane(doc, win) {
1005
+ const root = doc.documentElement
1006
+ root.dataset.bpCitePane = ''
1007
+
1008
+ let ui = null
1009
+ let lastTrigger = null
1010
+ let citeEl = null
1011
+ const reduced = () => themePrefersReducedMotion(win)
1012
+
1013
+ // The pane push narrows <main>; below its natural measure the prose reflows
1014
+ // taller, which shoves the triggering citation far down the page. Resolve the
1015
+ // active scroller (the fixed shell <main> in wide layout, else the window)
1016
+ // and pin the citation's viewport position across the open transition so the
1017
+ // reader keeps looking at the line they clicked.
1018
+ const resolveScroller = () => {
1019
+ const main = doc.querySelector('main')
1020
+ return main &&
1021
+ root.dataset.bpDocument !== undefined &&
1022
+ win.getComputedStyle(main).position === 'fixed'
1023
+ ? main
1024
+ : null
1025
+ }
1026
+ const scrollBy = (scroller, dy) => {
1027
+ if (!dy) return
1028
+ if (scroller) scroller.scrollTop += dy
1029
+ else win.scrollBy(0, dy)
1030
+ }
1031
+ const pinCitation = (anchor) => {
1032
+ if (!anchor || !doc.contains(anchor)) return
1033
+ const scroller = resolveScroller()
1034
+ const anchorTop = anchor.getBoundingClientRect().top
1035
+ // Reduced motion has no transition, so layout settles in one frame.
1036
+ const durationMs = reduced()
1037
+ ? 0
1038
+ : (parseFloat(
1039
+ win.getComputedStyle(root).getPropertyValue('--bp-duration-slow'),
1040
+ ) || 300) + 60
1041
+ const start = win.performance.now()
1042
+ const keep = () => {
1043
+ scrollBy(scroller, anchor.getBoundingClientRect().top - anchorTop)
1044
+ if (win.performance.now() - start < durationMs) {
1045
+ win.requestAnimationFrame(keep)
1046
+ }
1047
+ }
1048
+ win.requestAnimationFrame(keep)
1049
+ }
1050
+
1051
+ const ensure = () => {
1052
+ if (ui) return ui
1053
+ ui = buildCitePane(doc)
1054
+ ui.close.addEventListener('click', () => closePane())
1055
+ ui.loc.addEventListener('click', () => {
1056
+ if (citeEl && doc.contains(citeEl)) {
1057
+ citeEl.scrollIntoView({
1058
+ behavior: reduced() ? 'auto' : 'smooth',
1059
+ block: 'center',
1060
+ })
1061
+ }
1062
+ })
1063
+ return ui
1064
+ }
1065
+
1066
+ const paint = (detail) => {
1067
+ ui.eyebrow.textContent = detail.language || 'Cited source'
1068
+ ui.loc.textContent = detail.loc || ''
1069
+ ui.loc.hidden = !detail.loc
1070
+ ui.source.replaceChildren()
1071
+ if (detail.source instanceof Node) {
1072
+ // Clone defensively so the pane owns its copy: append() moves a node out
1073
+ // of its current parent, so a caller that hands over a live popover node
1074
+ // (rather than a clone) would otherwise be detached and left blank.
1075
+ const node = detail.source.cloneNode(true)
1076
+ node.removeAttribute?.('tabindex')
1077
+ ui.source.append(node)
1078
+ } else {
1079
+ const pre = doc.createElement('pre')
1080
+ const code = doc.createElement('code')
1081
+ code.textContent = detail.code || ''
1082
+ pre.append(code)
1083
+ ui.source.append(pre)
1084
+ }
1085
+ }
1086
+
1087
+ const openPane = (detail, trigger, el) => {
1088
+ ensure()
1089
+ const wasOpen = ui.pane.classList.contains('is-open')
1090
+ if (lastTrigger && lastTrigger !== trigger) {
1091
+ lastTrigger.setAttribute('aria-expanded', 'false')
1092
+ }
1093
+ if (trigger) lastTrigger = trigger
1094
+ citeEl = el || null
1095
+
1096
+ if (wasOpen && !reduced()) {
1097
+ ui.swap.classList.add('is-leaving')
1098
+ // Paint the new source one frame before the leave crossfade lands so the
1099
+ // swap stays hidden under the fade. Read the duration from the token that
1100
+ // governs .bp-cite-pane__swap rather than hardcoding it, the way
1101
+ // pinCitation reads --bp-duration-slow.
1102
+ const swapMs =
1103
+ (parseFloat(
1104
+ win.getComputedStyle(root).getPropertyValue('--bp-duration-normal'),
1105
+ ) || 200) * 0.9
1106
+ win.setTimeout(() => {
1107
+ paint(detail)
1108
+ win.requestAnimationFrame(() => ui.swap.classList.remove('is-leaving'))
1109
+ }, swapMs)
1110
+ } else {
1111
+ paint(detail)
1112
+ }
1113
+
1114
+ ui.pane.classList.add('is-open')
1115
+ if (trigger) trigger.setAttribute('aria-expanded', 'true')
1116
+ if (!wasOpen) {
1117
+ // Only the first open reflows the sheet; keep the clicked citation pinned
1118
+ // through the push so the reader does not lose their place.
1119
+ pinCitation(citeEl || trigger)
1120
+ win.requestAnimationFrame(() => ui.pane.focus({ preventScroll: true }))
1121
+ }
1122
+ }
1123
+
1124
+ const closePane = () => {
1125
+ if (!ui || !ui.pane.classList.contains('is-open')) return
1126
+ ui.pane.classList.remove('is-open')
1127
+ const trigger = lastTrigger
1128
+ const anchor = citeEl || trigger
1129
+ lastTrigger = null
1130
+ citeEl = null
1131
+ // Closing widens the sheet and reflows the prose shorter; keep the same
1132
+ // citation pinned so the reader lands back where they opened from.
1133
+ pinCitation(anchor)
1134
+ if (trigger) {
1135
+ trigger.setAttribute('aria-expanded', 'false')
1136
+ if (doc.contains(trigger)) trigger.focus({ preventScroll: true })
1137
+ }
1138
+ }
1139
+
1140
+ doc.addEventListener('bp-cite-open', (event) => {
1141
+ const detail = event.detail || {}
1142
+ const el = event.target
1143
+ const trigger =
1144
+ (el && el.querySelector && el.querySelector('.bp-cite-trigger')) || el
1145
+ openPane(detail, trigger, el)
1146
+ })
1147
+
1148
+ doc.addEventListener('keydown', (event) => {
1149
+ if (event.key === 'Escape' && ui && ui.pane.classList.contains('is-open')) {
1150
+ event.stopPropagation()
1151
+ closePane()
1152
+ }
1153
+ })
1154
+ }
1155
+
934
1156
  // Optional behavior for TOC current state and reading progress.
935
1157
  import { registerBlueprintChoiceElements } from './blueprint-choices.js'
936
1158
 
@@ -944,10 +1166,12 @@ export function initializeBlueprintRuntime(doc = document, win = window) {
944
1166
  // Resolve the theme before chrome is injected so the toggle renders in the
945
1167
  // correct state and the page doesn't repaint a second time.
946
1168
  resolveInitialTheme(doc, win)
947
- injectDocumentChrome(doc, win)
948
- generateNavigationFromHeadings(doc)
1169
+ const navigationTree = ensureDocumentNavTree(doc)
1170
+ injectDocumentChrome(doc, win, navigationTree)
1171
+ generateNavigationFromHeadings(doc, navigationTree)
949
1172
  wireSectionHeadingLinks(doc, win)
950
1173
  wireSearchPalette(doc, win)
1174
+ wireCitePane(doc, win)
951
1175
  wireFigureDiagramSize(doc)
952
1176
 
953
1177
  // <main> becomes the scroll container only while it is fixed (wide
@@ -1507,8 +1731,7 @@ function populateAllBpToc(doc, tree) {
1507
1731
  }
1508
1732
  }
1509
1733
 
1510
- function generateNavigationFromHeadings(doc) {
1511
- const tree = ensureDocumentNavTree(doc)
1734
+ function generateNavigationFromHeadings(doc, tree = ensureDocumentNavTree(doc)) {
1512
1735
  if (tree.length === 0) return
1513
1736
 
1514
1737
  const navFragment = renderNavTree(doc, tree)
@@ -409,3 +409,17 @@
409
409
  :where(.bp-cite-pop pre[class*="language-"])::before {
410
410
  display: none; /* flush inside popover, no accent bar */
411
411
  }
412
+
413
+ /* ---------------------------------------------------------------------
414
+ 9. Cited-source side pane (<bp-cite> → bp-cite-open)
415
+ ---------------------------------------------------------------------
416
+ The pane reuses the full highlighted-block treatment from §2 — surface,
417
+ border, left accent bar, and the monochrome token ramp (bold keywords,
418
+ italic comments). Only the outer margin is cleared so the block sits
419
+ flush in the pane body; unlike the popover (§8), the accent bar stays.
420
+ ------------------------------------------------------------------- */
421
+ :where(.bp-cite-pane__source pre[class*="language-"]) {
422
+ margin: 0;
423
+ margin-block: 0;
424
+ max-height: none;
425
+ }
@@ -1,10 +1,10 @@
1
- var we=Object.create;var Q=Object.defineProperty;var Ae=Object.getOwnPropertyDescriptor;var Ee=Object.getOwnPropertyNames;var xe=Object.getPrototypeOf,Fe=Object.prototype.hasOwnProperty;var F=(n,e)=>()=>{try{return e||n((e={exports:{}}).exports,e),e.exports}catch(o){throw e=0,o}};var ke=(n,e,o,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Ee(e))!Fe.call(n,a)&&a!==o&&Q(n,a,{get:()=>e[a],enumerable:!(c=Ae(e,a))||c.enumerable});return n};var k=(n,e,o)=>(o=n!=null?we(xe(n)):{},ke(e||!n||!n.__esModule?Q(o,"default",{value:n,enumerable:!0}):o,n));var te=F((Ie,M)=>{var Pe=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};var ee=(function(n){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,o=0,c={},a={manual:n.Prism&&n.Prism.manual,disableWorkerMessageHandler:n.Prism&&n.Prism.disableWorkerMessageHandler,util:{encode:function r(t){return t instanceof m?new m(t.type,r(t.content),t.alias):Array.isArray(t)?t.map(r):t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(r){return Object.prototype.toString.call(r).slice(8,-1)},objId:function(r){return r.__id||Object.defineProperty(r,"__id",{value:++o}),r.__id},clone:function r(t,i){i=i||{};var s,l;switch(a.util.type(t)){case"Object":if(l=a.util.objId(t),i[l])return i[l];s={},i[l]=s;for(var d in t)t.hasOwnProperty(d)&&(s[d]=r(t[d],i));return s;case"Array":return l=a.util.objId(t),i[l]?i[l]:(s=[],i[l]=s,t.forEach(function(v,p){s[p]=r(v,i)}),s);default:return t}},getLanguage:function(r){for(;r;){var t=e.exec(r.className);if(t)return t[1].toLowerCase();r=r.parentElement}return"none"},setLanguage:function(r,t){r.className=r.className.replace(RegExp(e,"gi"),""),r.classList.add("language-"+t)},currentScript:function(){if(typeof document>"u")return null;if(document.currentScript&&document.currentScript.tagName==="SCRIPT")return document.currentScript;try{throw new Error}catch(s){var r=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(s.stack)||[])[1];if(r){var t=document.getElementsByTagName("script");for(var i in t)if(t[i].src==r)return t[i]}return null}},isActive:function(r,t,i){for(var s="no-"+t;r;){var l=r.classList;if(l.contains(t))return!0;if(l.contains(s))return!1;r=r.parentElement}return!!i}},languages:{plain:c,plaintext:c,text:c,txt:c,extend:function(r,t){var i=a.util.clone(a.languages[r]);for(var s in t)i[s]=t[s];return i},insertBefore:function(r,t,i,s){s=s||a.languages;var l=s[r],d={};for(var v in l)if(l.hasOwnProperty(v)){if(v==t)for(var p in i)i.hasOwnProperty(p)&&(d[p]=i[p]);i.hasOwnProperty(v)||(d[v]=l[v])}var w=s[r];return s[r]=d,a.languages.DFS(a.languages,function(A,T){T===w&&A!=r&&(this[A]=d)}),d},DFS:function r(t,i,s,l){l=l||{};var d=a.util.objId;for(var v in t)if(t.hasOwnProperty(v)){i.call(t,v,t[v],s||v);var p=t[v],w=a.util.type(p);w==="Object"&&!l[d(p)]?(l[d(p)]=!0,r(p,i,null,l)):w==="Array"&&!l[d(p)]&&(l[d(p)]=!0,r(p,i,v,l))}}},plugins:{},highlightAll:function(r,t){a.highlightAllUnder(document,r,t)},highlightAllUnder:function(r,t,i){var s={callback:i,container:r,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};a.hooks.run("before-highlightall",s),s.elements=Array.prototype.slice.apply(s.container.querySelectorAll(s.selector)),a.hooks.run("before-all-elements-highlight",s);for(var l=0,d;d=s.elements[l++];)a.highlightElement(d,t===!0,s.callback)},highlightElement:function(r,t,i){var s=a.util.getLanguage(r),l=a.languages[s];a.util.setLanguage(r,s);var d=r.parentElement;d&&d.nodeName.toLowerCase()==="pre"&&a.util.setLanguage(d,s);var v=r.textContent,p={element:r,language:s,grammar:l,code:v};function w(T){p.highlightedCode=T,a.hooks.run("before-insert",p),p.element.innerHTML=p.highlightedCode,a.hooks.run("after-highlight",p),a.hooks.run("complete",p),i&&i.call(p.element)}if(a.hooks.run("before-sanity-check",p),d=p.element.parentElement,d&&d.nodeName.toLowerCase()==="pre"&&!d.hasAttribute("tabindex")&&d.setAttribute("tabindex","0"),!p.code){a.hooks.run("complete",p),i&&i.call(p.element);return}if(a.hooks.run("before-highlight",p),!p.grammar){w(a.util.encode(p.code));return}if(t&&n.Worker){var A=new Worker(a.filename);A.onmessage=function(T){w(T.data)},A.postMessage(JSON.stringify({language:p.language,code:p.code,immediateClose:!0}))}else w(a.highlight(p.code,p.grammar,p.language))},highlight:function(r,t,i){var s={code:r,grammar:t,language:i};if(a.hooks.run("before-tokenize",s),!s.grammar)throw new Error('The language "'+s.language+'" has no grammar.');return s.tokens=a.tokenize(s.code,s.grammar),a.hooks.run("after-tokenize",s),m.stringify(a.util.encode(s.tokens),s.language)},tokenize:function(r,t){var i=t.rest;if(i){for(var s in i)t[s]=i[s];delete t.rest}var l=new g;return f(l,l.head,r),h(r,l,t,l.head,0),b(l)},hooks:{all:{},add:function(r,t){var i=a.hooks.all;i[r]=i[r]||[],i[r].push(t)},run:function(r,t){var i=a.hooks.all[r];if(!(!i||!i.length))for(var s=0,l;l=i[s++];)l(t)}},Token:m};n.Prism=a;function m(r,t,i,s){this.type=r,this.content=t,this.alias=i,this.length=(s||"").length|0}m.stringify=function r(t,i){if(typeof t=="string")return t;if(Array.isArray(t)){var s="";return t.forEach(function(w){s+=r(w,i)}),s}var l={type:t.type,content:r(t.content,i),tag:"span",classes:["token",t.type],attributes:{},language:i},d=t.alias;d&&(Array.isArray(d)?Array.prototype.push.apply(l.classes,d):l.classes.push(d)),a.hooks.run("wrap",l);var v="";for(var p in l.attributes)v+=" "+p+'="'+(l.attributes[p]||"").replace(/"/g,"&quot;")+'"';return"<"+l.tag+' class="'+l.classes.join(" ")+'"'+v+">"+l.content+"</"+l.tag+">"};function u(r,t,i,s){r.lastIndex=t;var l=r.exec(i);if(l&&s&&l[1]){var d=l[1].length;l.index+=d,l[0]=l[0].slice(d)}return l}function h(r,t,i,s,l,d){for(var v in i)if(!(!i.hasOwnProperty(v)||!i[v])){var p=i[v];p=Array.isArray(p)?p:[p];for(var w=0;w<p.length;++w){if(d&&d.cause==v+","+w)return;var A=p[w],T=A.inside,Y=!!A.lookbehind,K=!!A.greedy,be=A.alias;if(K&&!A.pattern.global){var ve=A.pattern.toString().match(/[imsuy]*$/)[0];A.pattern=RegExp(A.pattern.source,ve+"g")}for(var V=A.pattern||A,E=s.next,P=l;E!==t.tail&&!(d&&P>=d.reach);P+=E.value.length,E=E.next){var $=E.value;if(t.length>r.length)return;if(!($ instanceof m)){var O=1,x;if(K){if(x=u(V,P,r,Y),!x||x.index>=r.length)break;var R=x.index,ye=x.index+x[0].length,C=P;for(C+=E.value.length;R>=C;)E=E.next,C+=E.value.length;if(C-=E.value.length,P=C,E.value instanceof m)continue;for(var I=E;I!==t.tail&&(C<ye||typeof I.value=="string");I=I.next)O++,C+=I.value.length;O--,$=r.slice(P,C),x.index-=P}else if(x=u(V,0,$,Y),!x)continue;var R=x.index,D=x[0],G=$.slice(0,R),J=$.slice(R+D.length),B=P+$.length;d&&B>d.reach&&(d.reach=B);var H=E.prev;G&&(H=f(t,H,G),P+=G.length),y(t,H,O);var Se=new m(v,T?a.tokenize(D,T):D,be,D);if(E=f(t,H,Se),J&&f(t,E,J),O>1){var j={cause:v+","+w,reach:B};h(r,t,i,E.prev,P,j),d&&j.reach>d.reach&&(d.reach=j.reach)}}}}}}function g(){var r={value:null,prev:null,next:null},t={value:null,prev:r,next:null};r.next=t,this.head=r,this.tail=t,this.length=0}function f(r,t,i){var s=t.next,l={value:i,prev:t,next:s};return t.next=l,s.prev=l,r.length++,l}function y(r,t,i){for(var s=t.next,l=0;l<i&&s!==r.tail;l++)s=s.next;t.next=s,s.prev=t,r.length-=l}function b(r){for(var t=[],i=r.head.next;i!==r.tail;)t.push(i.value),i=i.next;return t}if(!n.document)return n.addEventListener&&(a.disableWorkerMessageHandler||n.addEventListener("message",function(r){var t=JSON.parse(r.data),i=t.language,s=t.code,l=t.immediateClose;n.postMessage(a.highlight(s,a.languages[i],i)),l&&n.close()},!1)),a;var S=a.util.currentScript();S&&(a.filename=S.src,S.hasAttribute("data-manual")&&(a.manual=!0));function _(){a.manual||a.highlightAll()}if(!a.manual){var N=document.readyState;N==="loading"||N==="interactive"&&S&&S.defer?document.addEventListener("DOMContentLoaded",_):window.requestAnimationFrame?window.requestAnimationFrame(_):window.setTimeout(_,16)}return a})(Pe);typeof M<"u"&&M.exports&&(M.exports=ee);typeof global<"u"&&(global.Prism=ee)});var ne=F(()=>{Prism.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]};Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity;Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup;Prism.hooks.add("wrap",function(n){n.type==="entity"&&(n.attributes.title=n.content.replace(/&amp;/,"&"))});Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(e,o){var c={};c["language-"+o]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:Prism.languages[o]},c.cdata=/^<!\[CDATA\[|\]\]>$/i;var a={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:c}};a["language-"+o]={pattern:/[\s\S]+/,inside:Prism.languages[o]};var m={};m[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,function(){return e}),"i"),lookbehind:!0,greedy:!0,inside:a},Prism.languages.insertBefore("markup","cdata",m)}});Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(n,e){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+n+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[e,"language-"+e],inside:Prism.languages[e]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}});Prism.languages.html=Prism.languages.markup;Prism.languages.mathml=Prism.languages.markup;Prism.languages.svg=Prism.languages.markup;Prism.languages.xml=Prism.languages.extend("markup",{});Prism.languages.ssml=Prism.languages.xml;Prism.languages.atom=Prism.languages.xml;Prism.languages.rss=Prism.languages.xml});var ae=F(()=>{(function(n){var e=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;n.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+e.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+e.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+e.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+e.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:e,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},n.languages.css.atrule.inside.rest=n.languages.css;var o=n.languages.markup;o&&(o.tag.addInlined("style","css"),o.tag.addAttribute("style","css"))})(Prism)});var re=F(()=>{Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}});var ie=F(()=>{Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/});Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/;Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/});Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}});Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}});Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript"));Prism.languages.js=Prism.languages.javascript});var se=F(()=>{(function(n){n.languages.typescript=n.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),n.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete n.languages.typescript.parameter,delete n.languages.typescript["literal-property"];var e=n.languages.extend("typescript",{});delete e["class-name"],n.languages.typescript["class-name"].inside=e,n.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e}}}}),n.languages.ts=n.languages.typescript})(Prism)});var oe=F(()=>{Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}};Prism.languages.webmanifest=Prism.languages.json});var le=F(()=>{(function(n){var e="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",o={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},c={bash:o,environment:{pattern:RegExp("\\$"+e),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+e),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};n.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+e),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:c},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:o}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:c},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:c.entity}}],environment:{pattern:RegExp("\\$?"+e),alias:"constant"},variable:c.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},o.inside=n.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],m=c.variable[1].inside,u=0;u<a.length;u++)m[a[u]]=n.languages.bash[a[u]];n.languages.sh=n.languages.bash,n.languages.shell=n.languages.bash})(Prism)});var ue=F(()=>{Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/};Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python;Prism.languages.py=Prism.languages.python});var ce=F(()=>{(function(n){n.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var e={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(e).forEach(function(o){var c=e[o],a=[];/^\w+$/.test(o)||a.push(/\w+/.exec(o)[0]),o==="diff"&&a.push("bold"),n.languages.diff[o]={pattern:RegExp("^(?:["+c+`].*(?:\r
1
+ var Ae=Object.create;var Q=Object.defineProperty;var we=Object.getOwnPropertyDescriptor;var Ee=Object.getOwnPropertyNames;var xe=Object.getPrototypeOf,ke=Object.prototype.hasOwnProperty;var k=(n,e)=>()=>{try{return e||n((e={exports:{}}).exports,e),e.exports}catch(o){throw e=0,o}};var Fe=(n,e,o,u)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Ee(e))!ke.call(n,a)&&a!==o&&Q(n,a,{get:()=>e[a],enumerable:!(u=we(e,a))||u.enumerable});return n};var F=(n,e,o)=>(o=n!=null?Ae(xe(n)):{},Fe(e||!n||!n.__esModule?Q(o,"default",{value:n,enumerable:!0}):o,n));var te=k(($e,M)=>{var Pe=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};var ee=(function(n){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,o=0,u={},a={manual:n.Prism&&n.Prism.manual,disableWorkerMessageHandler:n.Prism&&n.Prism.disableWorkerMessageHandler,util:{encode:function r(t){return t instanceof f?new f(t.type,r(t.content),t.alias):Array.isArray(t)?t.map(r):t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/\u00a0/g," ")},type:function(r){return Object.prototype.toString.call(r).slice(8,-1)},objId:function(r){return r.__id||Object.defineProperty(r,"__id",{value:++o}),r.__id},clone:function r(t,i){i=i||{};var s,l;switch(a.util.type(t)){case"Object":if(l=a.util.objId(t),i[l])return i[l];s={},i[l]=s;for(var d in t)t.hasOwnProperty(d)&&(s[d]=r(t[d],i));return s;case"Array":return l=a.util.objId(t),i[l]?i[l]:(s=[],i[l]=s,t.forEach(function(v,p){s[p]=r(v,i)}),s);default:return t}},getLanguage:function(r){for(;r;){var t=e.exec(r.className);if(t)return t[1].toLowerCase();r=r.parentElement}return"none"},setLanguage:function(r,t){r.className=r.className.replace(RegExp(e,"gi"),""),r.classList.add("language-"+t)},currentScript:function(){if(typeof document>"u")return null;if(document.currentScript&&document.currentScript.tagName==="SCRIPT")return document.currentScript;try{throw new Error}catch(s){var r=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(s.stack)||[])[1];if(r){var t=document.getElementsByTagName("script");for(var i in t)if(t[i].src==r)return t[i]}return null}},isActive:function(r,t,i){for(var s="no-"+t;r;){var l=r.classList;if(l.contains(t))return!0;if(l.contains(s))return!1;r=r.parentElement}return!!i}},languages:{plain:u,plaintext:u,text:u,txt:u,extend:function(r,t){var i=a.util.clone(a.languages[r]);for(var s in t)i[s]=t[s];return i},insertBefore:function(r,t,i,s){s=s||a.languages;var l=s[r],d={};for(var v in l)if(l.hasOwnProperty(v)){if(v==t)for(var p in i)i.hasOwnProperty(p)&&(d[p]=i[p]);i.hasOwnProperty(v)||(d[v]=l[v])}var A=s[r];return s[r]=d,a.languages.DFS(a.languages,function(w,T){T===A&&w!=r&&(this[w]=d)}),d},DFS:function r(t,i,s,l){l=l||{};var d=a.util.objId;for(var v in t)if(t.hasOwnProperty(v)){i.call(t,v,t[v],s||v);var p=t[v],A=a.util.type(p);A==="Object"&&!l[d(p)]?(l[d(p)]=!0,r(p,i,null,l)):A==="Array"&&!l[d(p)]&&(l[d(p)]=!0,r(p,i,v,l))}}},plugins:{},highlightAll:function(r,t){a.highlightAllUnder(document,r,t)},highlightAllUnder:function(r,t,i){var s={callback:i,container:r,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};a.hooks.run("before-highlightall",s),s.elements=Array.prototype.slice.apply(s.container.querySelectorAll(s.selector)),a.hooks.run("before-all-elements-highlight",s);for(var l=0,d;d=s.elements[l++];)a.highlightElement(d,t===!0,s.callback)},highlightElement:function(r,t,i){var s=a.util.getLanguage(r),l=a.languages[s];a.util.setLanguage(r,s);var d=r.parentElement;d&&d.nodeName.toLowerCase()==="pre"&&a.util.setLanguage(d,s);var v=r.textContent,p={element:r,language:s,grammar:l,code:v};function A(T){p.highlightedCode=T,a.hooks.run("before-insert",p),p.element.innerHTML=p.highlightedCode,a.hooks.run("after-highlight",p),a.hooks.run("complete",p),i&&i.call(p.element)}if(a.hooks.run("before-sanity-check",p),d=p.element.parentElement,d&&d.nodeName.toLowerCase()==="pre"&&!d.hasAttribute("tabindex")&&d.setAttribute("tabindex","0"),!p.code){a.hooks.run("complete",p),i&&i.call(p.element);return}if(a.hooks.run("before-highlight",p),!p.grammar){A(a.util.encode(p.code));return}if(t&&n.Worker){var w=new Worker(a.filename);w.onmessage=function(T){A(T.data)},w.postMessage(JSON.stringify({language:p.language,code:p.code,immediateClose:!0}))}else A(a.highlight(p.code,p.grammar,p.language))},highlight:function(r,t,i){var s={code:r,grammar:t,language:i};if(a.hooks.run("before-tokenize",s),!s.grammar)throw new Error('The language "'+s.language+'" has no grammar.');return s.tokens=a.tokenize(s.code,s.grammar),a.hooks.run("after-tokenize",s),f.stringify(a.util.encode(s.tokens),s.language)},tokenize:function(r,t){var i=t.rest;if(i){for(var s in i)t[s]=i[s];delete t.rest}var l=new g;return m(l,l.head,r),h(r,l,t,l.head,0),b(l)},hooks:{all:{},add:function(r,t){var i=a.hooks.all;i[r]=i[r]||[],i[r].push(t)},run:function(r,t){var i=a.hooks.all[r];if(!(!i||!i.length))for(var s=0,l;l=i[s++];)l(t)}},Token:f};n.Prism=a;function f(r,t,i,s){this.type=r,this.content=t,this.alias=i,this.length=(s||"").length|0}f.stringify=function r(t,i){if(typeof t=="string")return t;if(Array.isArray(t)){var s="";return t.forEach(function(A){s+=r(A,i)}),s}var l={type:t.type,content:r(t.content,i),tag:"span",classes:["token",t.type],attributes:{},language:i},d=t.alias;d&&(Array.isArray(d)?Array.prototype.push.apply(l.classes,d):l.classes.push(d)),a.hooks.run("wrap",l);var v="";for(var p in l.attributes)v+=" "+p+'="'+(l.attributes[p]||"").replace(/"/g,"&quot;")+'"';return"<"+l.tag+' class="'+l.classes.join(" ")+'"'+v+">"+l.content+"</"+l.tag+">"};function c(r,t,i,s){r.lastIndex=t;var l=r.exec(i);if(l&&s&&l[1]){var d=l[1].length;l.index+=d,l[0]=l[0].slice(d)}return l}function h(r,t,i,s,l,d){for(var v in i)if(!(!i.hasOwnProperty(v)||!i[v])){var p=i[v];p=Array.isArray(p)?p:[p];for(var A=0;A<p.length;++A){if(d&&d.cause==v+","+A)return;var w=p[A],T=w.inside,Y=!!w.lookbehind,K=!!w.greedy,be=w.alias;if(K&&!w.pattern.global){var ve=w.pattern.toString().match(/[imsuy]*$/)[0];w.pattern=RegExp(w.pattern.source,ve+"g")}for(var V=w.pattern||w,E=s.next,P=l;E!==t.tail&&!(d&&P>=d.reach);P+=E.value.length,E=E.next){var I=E.value;if(t.length>r.length)return;if(!(I instanceof f)){var O=1,x;if(K){if(x=c(V,P,r,Y),!x||x.index>=r.length)break;var R=x.index,ye=x.index+x[0].length,C=P;for(C+=E.value.length;R>=C;)E=E.next,C+=E.value.length;if(C-=E.value.length,P=C,E.value instanceof f)continue;for(var L=E;L!==t.tail&&(C<ye||typeof L.value=="string");L=L.next)O++,C+=L.value.length;O--,I=r.slice(P,C),x.index-=P}else if(x=c(V,0,I,Y),!x)continue;var R=x.index,D=x[0],G=I.slice(0,R),J=I.slice(R+D.length),B=P+I.length;d&&B>d.reach&&(d.reach=B);var H=E.prev;G&&(H=m(t,H,G),P+=G.length),y(t,H,O);var Se=new f(v,T?a.tokenize(D,T):D,be,D);if(E=m(t,H,Se),J&&m(t,E,J),O>1){var j={cause:v+","+A,reach:B};h(r,t,i,E.prev,P,j),d&&j.reach>d.reach&&(d.reach=j.reach)}}}}}}function g(){var r={value:null,prev:null,next:null},t={value:null,prev:r,next:null};r.next=t,this.head=r,this.tail=t,this.length=0}function m(r,t,i){var s=t.next,l={value:i,prev:t,next:s};return t.next=l,s.prev=l,r.length++,l}function y(r,t,i){for(var s=t.next,l=0;l<i&&s!==r.tail;l++)s=s.next;t.next=s,s.prev=t,r.length-=l}function b(r){for(var t=[],i=r.head.next;i!==r.tail;)t.push(i.value),i=i.next;return t}if(!n.document)return n.addEventListener&&(a.disableWorkerMessageHandler||n.addEventListener("message",function(r){var t=JSON.parse(r.data),i=t.language,s=t.code,l=t.immediateClose;n.postMessage(a.highlight(s,a.languages[i],i)),l&&n.close()},!1)),a;var S=a.util.currentScript();S&&(a.filename=S.src,S.hasAttribute("data-manual")&&(a.manual=!0));function _(){a.manual||a.highlightAll()}if(!a.manual){var N=document.readyState;N==="loading"||N==="interactive"&&S&&S.defer?document.addEventListener("DOMContentLoaded",_):window.requestAnimationFrame?window.requestAnimationFrame(_):window.setTimeout(_,16)}return a})(Pe);typeof M<"u"&&M.exports&&(M.exports=ee);typeof global<"u"&&(global.Prism=ee)});var ne=k(()=>{Prism.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]};Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity;Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup;Prism.hooks.add("wrap",function(n){n.type==="entity"&&(n.attributes.title=n.content.replace(/&amp;/,"&"))});Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(e,o){var u={};u["language-"+o]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:Prism.languages[o]},u.cdata=/^<!\[CDATA\[|\]\]>$/i;var a={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:u}};a["language-"+o]={pattern:/[\s\S]+/,inside:Prism.languages[o]};var f={};f[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,function(){return e}),"i"),lookbehind:!0,greedy:!0,inside:a},Prism.languages.insertBefore("markup","cdata",f)}});Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(n,e){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+n+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[e,"language-"+e],inside:Prism.languages[e]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}});Prism.languages.html=Prism.languages.markup;Prism.languages.mathml=Prism.languages.markup;Prism.languages.svg=Prism.languages.markup;Prism.languages.xml=Prism.languages.extend("markup",{});Prism.languages.ssml=Prism.languages.xml;Prism.languages.atom=Prism.languages.xml;Prism.languages.rss=Prism.languages.xml});var ae=k(()=>{(function(n){var e=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;n.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+e.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+e.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+e.source+"$"),alias:"url"}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+e.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:e,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},n.languages.css.atrule.inside.rest=n.languages.css;var o=n.languages.markup;o&&(o.tag.addInlined("style","css"),o.tag.addAttribute("style","css"))})(Prism)});var re=k(()=>{Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}});var ie=k(()=>{Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/});Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/;Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/});Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}});Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}});Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript"));Prism.languages.js=Prism.languages.javascript});var se=k(()=>{(function(n){n.languages.typescript=n.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),n.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete n.languages.typescript.parameter,delete n.languages.typescript["literal-property"];var e=n.languages.extend("typescript",{});delete e["class-name"],n.languages.typescript["class-name"].inside=e,n.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e}}}}),n.languages.ts=n.languages.typescript})(Prism)});var oe=k(()=>{Prism.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}};Prism.languages.webmanifest=Prism.languages.json});var le=k(()=>{(function(n){var e="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",o={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},u={bash:o,environment:{pattern:RegExp("\\$"+e),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+e),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};n.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+e),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:u},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:o}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:u},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:u.entity}}],environment:{pattern:RegExp("\\$?"+e),alias:"constant"},variable:u.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},o.inside=n.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],f=u.variable[1].inside,c=0;c<a.length;c++)f[a[c]]=n.languages.bash[a[c]];n.languages.sh=n.languages.bash,n.languages.shell=n.languages.bash})(Prism)});var ue=k(()=>{Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/};Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python;Prism.languages.py=Prism.languages.python});var ce=k(()=>{(function(n){n.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var e={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(e).forEach(function(o){var u=e[o],a=[];/^\w+$/.test(o)||a.push(/\w+/.exec(o)[0]),o==="diff"&&a.push("bold"),n.languages.diff[o]={pattern:RegExp("^(?:["+u+`].*(?:\r
2
2
  ?|
3
- |(?![\\s\\S])))+`,"m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(o)[0]}}}}),Object.defineProperty(n.languages.diff,"PREFIXES",{value:e})})(Prism)});var de=F(()=>{(function(){if(typeof Prism>"u"||typeof document>"u")return;var n="line-numbers",e=/\n(?!$)/g,o=Prism.plugins.lineNumbers={getLine:function(u,h){if(!(u.tagName!=="PRE"||!u.classList.contains(n))){var g=u.querySelector(".line-numbers-rows");if(g){var f=parseInt(u.getAttribute("data-start"),10)||1,y=f+(g.children.length-1);h<f&&(h=f),h>y&&(h=y);var b=h-f;return g.children[b]}}},resize:function(u){c([u])},assumeViewportIndependence:!0};function c(u){if(u=u.filter(function(g){var f=a(g),y=f["white-space"];return y==="pre-wrap"||y==="pre-line"}),u.length!=0){var h=u.map(function(g){var f=g.querySelector("code"),y=g.querySelector(".line-numbers-rows");if(!(!f||!y)){var b=g.querySelector(".line-numbers-sizer"),S=f.textContent.split(e);b||(b=document.createElement("span"),b.className="line-numbers-sizer",f.appendChild(b)),b.innerHTML="0",b.style.display="block";var _=b.getBoundingClientRect().height;return b.innerHTML="",{element:g,lines:S,lineHeights:[],oneLinerHeight:_,sizer:b}}}).filter(Boolean);h.forEach(function(g){var f=g.sizer,y=g.lines,b=g.lineHeights,S=g.oneLinerHeight;b[y.length-1]=void 0,y.forEach(function(_,N){if(_&&_.length>1){var r=f.appendChild(document.createElement("span"));r.style.display="block",r.textContent=_}else b[N]=S})}),h.forEach(function(g){for(var f=g.sizer,y=g.lineHeights,b=0,S=0;S<y.length;S++)y[S]===void 0&&(y[S]=f.children[b++].getBoundingClientRect().height)}),h.forEach(function(g){var f=g.sizer,y=g.element.querySelector(".line-numbers-rows");f.style.display="none",f.innerHTML="",g.lineHeights.forEach(function(b,S){y.children[S].style.height=b+"px"})})}}function a(u){return u?window.getComputedStyle?getComputedStyle(u):u.currentStyle||null:null}var m=void 0;window.addEventListener("resize",function(){o.assumeViewportIndependence&&m===window.innerWidth||(m=window.innerWidth,c(Array.prototype.slice.call(document.querySelectorAll("pre."+n))))}),Prism.hooks.add("complete",function(u){if(u.code){var h=u.element,g=h.parentNode;if(!(!g||!/pre/i.test(g.nodeName))&&!h.querySelector(".line-numbers-rows")&&Prism.util.isActive(h,n)){h.classList.remove(n),g.classList.add(n);var f=u.code.match(e),y=f?f.length+1:1,b,S=new Array(y+1).join("<span></span>");b=document.createElement("span"),b.setAttribute("aria-hidden","true"),b.className="line-numbers-rows",b.innerHTML=S,g.hasAttribute("data-start")&&(g.style.counterReset="linenumber "+(parseInt(g.getAttribute("data-start"),10)-1)),u.element.appendChild(b),c([g]),Prism.hooks.run("line-numbers",u)}}}),Prism.hooks.add("line-numbers",function(u){u.plugins=u.plugins||{},u.plugins.lineNumbers=!0})})()});var z=k(te(),1);globalThis.Prism=z.default;z.default.manual=!0;await Promise.resolve().then(()=>k(ne(),1));await Promise.resolve().then(()=>k(ae(),1));await Promise.resolve().then(()=>k(re(),1));await Promise.resolve().then(()=>k(ie(),1));await Promise.resolve().then(()=>k(se(),1));await Promise.resolve().then(()=>k(oe(),1));await Promise.resolve().then(()=>k(le(),1));await Promise.resolve().then(()=>k(ue(),1));await Promise.resolve().then(()=>k(ce(),1));await Promise.resolve().then(()=>k(de(),1));var X="bp-source",ge=".bp-source",U=new WeakMap,he=Object.freeze({bash:{grammar:"bash",label:"Bash"},css:{grammar:"css",label:"CSS"},diff:{grammar:"diff",label:"Diff"},html:{grammar:"markup",label:"HTML"},javascript:{grammar:"javascript",label:"JavaScript"},js:{grammar:"javascript",label:"JavaScript"},json:{grammar:"json",label:"JSON"},markup:{grammar:"markup",label:"HTML"},py:{grammar:"python",label:"Python"},python:{grammar:"python",label:"Python"},sh:{grammar:"bash",label:"Bash"},shell:{grammar:"bash",label:"Bash"},ts:{grammar:"typescript",label:"TypeScript"},typescript:{grammar:"typescript",label:"TypeScript"},xml:{grammar:"markup",label:"XML"}});function W(n){let e=n.replaceAll(`\r
3
+ |(?![\\s\\S])))+`,"m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(o)[0]}}}}),Object.defineProperty(n.languages.diff,"PREFIXES",{value:e})})(Prism)});var de=k(()=>{(function(){if(typeof Prism>"u"||typeof document>"u")return;var n="line-numbers",e=/\n(?!$)/g,o=Prism.plugins.lineNumbers={getLine:function(c,h){if(!(c.tagName!=="PRE"||!c.classList.contains(n))){var g=c.querySelector(".line-numbers-rows");if(g){var m=parseInt(c.getAttribute("data-start"),10)||1,y=m+(g.children.length-1);h<m&&(h=m),h>y&&(h=y);var b=h-m;return g.children[b]}}},resize:function(c){u([c])},assumeViewportIndependence:!0};function u(c){if(c=c.filter(function(g){var m=a(g),y=m["white-space"];return y==="pre-wrap"||y==="pre-line"}),c.length!=0){var h=c.map(function(g){var m=g.querySelector("code"),y=g.querySelector(".line-numbers-rows");if(!(!m||!y)){var b=g.querySelector(".line-numbers-sizer"),S=m.textContent.split(e);b||(b=document.createElement("span"),b.className="line-numbers-sizer",m.appendChild(b)),b.innerHTML="0",b.style.display="block";var _=b.getBoundingClientRect().height;return b.innerHTML="",{element:g,lines:S,lineHeights:[],oneLinerHeight:_,sizer:b}}}).filter(Boolean);h.forEach(function(g){var m=g.sizer,y=g.lines,b=g.lineHeights,S=g.oneLinerHeight;b[y.length-1]=void 0,y.forEach(function(_,N){if(_&&_.length>1){var r=m.appendChild(document.createElement("span"));r.style.display="block",r.textContent=_}else b[N]=S})}),h.forEach(function(g){for(var m=g.sizer,y=g.lineHeights,b=0,S=0;S<y.length;S++)y[S]===void 0&&(y[S]=m.children[b++].getBoundingClientRect().height)}),h.forEach(function(g){var m=g.sizer,y=g.element.querySelector(".line-numbers-rows");m.style.display="none",m.innerHTML="",g.lineHeights.forEach(function(b,S){y.children[S].style.height=b+"px"})})}}function a(c){return c?window.getComputedStyle?getComputedStyle(c):c.currentStyle||null:null}var f=void 0;window.addEventListener("resize",function(){o.assumeViewportIndependence&&f===window.innerWidth||(f=window.innerWidth,u(Array.prototype.slice.call(document.querySelectorAll("pre."+n))))}),Prism.hooks.add("complete",function(c){if(c.code){var h=c.element,g=h.parentNode;if(!(!g||!/pre/i.test(g.nodeName))&&!h.querySelector(".line-numbers-rows")&&Prism.util.isActive(h,n)){h.classList.remove(n),g.classList.add(n);var m=c.code.match(e),y=m?m.length+1:1,b,S=new Array(y+1).join("<span></span>");b=document.createElement("span"),b.setAttribute("aria-hidden","true"),b.className="line-numbers-rows",b.innerHTML=S,g.hasAttribute("data-start")&&(g.style.counterReset="linenumber "+(parseInt(g.getAttribute("data-start"),10)-1)),c.element.appendChild(b),u([g]),Prism.hooks.run("line-numbers",c)}}}),Prism.hooks.add("line-numbers",function(c){c.plugins=c.plugins||{},c.plugins.lineNumbers=!0})})()});var z=F(te(),1);globalThis.Prism=z.default;z.default.manual=!0;await Promise.resolve().then(()=>F(ne(),1));await Promise.resolve().then(()=>F(ae(),1));await Promise.resolve().then(()=>F(re(),1));await Promise.resolve().then(()=>F(ie(),1));await Promise.resolve().then(()=>F(se(),1));await Promise.resolve().then(()=>F(oe(),1));await Promise.resolve().then(()=>F(le(),1));await Promise.resolve().then(()=>F(ue(),1));await Promise.resolve().then(()=>F(ce(),1));await Promise.resolve().then(()=>F(de(),1));var X="bp-source",ge=".bp-source",U=new WeakMap,he=Object.freeze({bash:{grammar:"bash",label:"Bash"},css:{grammar:"css",label:"CSS"},diff:{grammar:"diff",label:"Diff"},html:{grammar:"markup",label:"HTML"},javascript:{grammar:"javascript",label:"JavaScript"},js:{grammar:"javascript",label:"JavaScript"},json:{grammar:"json",label:"JSON"},markup:{grammar:"markup",label:"HTML"},py:{grammar:"python",label:"Python"},python:{grammar:"python",label:"Python"},sh:{grammar:"bash",label:"Bash"},shell:{grammar:"bash",label:"Bash"},ts:{grammar:"typescript",label:"TypeScript"},typescript:{grammar:"typescript",label:"TypeScript"},xml:{grammar:"markup",label:"XML"}});function W(n){let e=n.replaceAll(`\r
4
4
  `,`
5
5
  `).split(`
6
- `);e[0]?.trim()===""&&e.shift(),e.at(-1)?.trim()===""&&e.pop();let o=u=>u.match(/^[\t ]*/)?.[0].length??0,c=e.length>1&&e[0].trim()!==""&&o(e[0])===0,a=e.filter((u,h)=>u.trim()&&!(c&&h===0)).map(o),m=a.length?Math.min(...a):0;return e.map((u,h)=>c&&h===0?u:u.slice(m)).join(`
7
- `)}function me(n){let e=n.trim().toLowerCase();return he[e]??{grammar:"plain",label:e||"Plain text"}}function fe(n,e){let o=globalThis.Prism,c=o?.languages?.[e],a=c&&e!=="plain";return n.className=`language-${a?e:"none"}`,n.parentElement.className=n.className,n.parentElement.tabIndex=0,a?(n.innerHTML=o.highlight(n.textContent,c,e),!0):!1}var L=class extends HTMLElement{static observedAttributes=["language","open"];static languages=Object.freeze(Object.keys(he));#a;#t;#e;#n;#r=!1;connectedCallback(){this.#r||(this.#n=W(this.textContent??""),this.#o(),this.#r=!0),this.#i()}attributeChangedCallback(){this.#r&&this.#i()}get language(){return this.getAttribute("language")||"text"}set language(e){this.setAttribute("language",e)}get sourceText(){return this.#n??W(this.textContent??"")}#o(){let e=document.createElement("details"),o=document.createElement("summary"),c=document.createElement("span"),a=document.createElement("div"),m=document.createElement("span"),u=document.createElement("button"),h=document.createElement("pre"),g=document.createElement("code");e.className=ge.slice(1),c.className="bp-source-name",c.textContent=this.getAttribute("summary")||"Source",a.className="bp-source-toolbar",m.className="bp-source-language",u.className="bp-source-copy",u.type="button",u.dataset.bpCopy="",u.setAttribute("aria-live","polite"),u.textContent="Copy",g.textContent=this.#n,a.append(m,u),o.append(c,a),h.append(g),e.append(o,h),this.replaceChildren(e),this.#a=e,this.#t=m,this.#e=g}#i(){let e=me(this.language);this.#a.open=this.hasAttribute("open"),this.#t.textContent=e.label,this.#e.textContent=this.#n;let o=fe(this.#e,e.grammar);this.dataset.bpHighlightState=o?"ready":"plain"}};customElements.get(X)||customElements.define(X,L);var pe="bp-cite",_e=0,Z=class extends HTMLElement{static observedAttributes=["language","loc","code","for"];#a=!1;#t;#e;#n;#r;#o;#i="";#s=!1;#l;#u;connectedCallback(){this.#a||(this.#d(),this.#m(),this.#a=!0),this.#p()}attributeChangedCallback(){this.#a&&(this.#d(),this.#p())}#d(){let e=this.querySelector(":scope > template"),o=this.getAttribute("for")?this.ownerDocument.getElementById(this.getAttribute("for")):null,c=this.getAttribute("code");if(c==null&&o&&(c=o.sourceText??o.textContent),c==null&&e&&(c=e.content.textContent),this.#i=W(c??""),!this.#a){let a="";for(let m of this.childNodes)m.nodeName.toLowerCase()!=="template"&&(a+=m.textContent??"");this.dataset.bpLabel=a.trim()||this.getAttribute("loc")||"source"}}get sourceText(){return this.#i}#m(){let e=`bp-cite-${_e+=1}`,o=document.createElement("button");o.type="button",o.className="bp-cite-trigger",o.textContent=this.dataset.bpLabel,o.setAttribute("aria-describedby",e),o.setAttribute("aria-expanded","false");let c=document.createElement("span");c.className="bp-cite-icon",c.setAttribute("aria-hidden","true"),o.append(c);let a=document.createElement("div");a.className="bp-cite-pop",a.id=e,a.setAttribute("role","tooltip"),a.showPopover&&a.setAttribute("popover","manual");let m=document.createElement("div");m.className="bp-cite-head";let u=document.createElement("span");u.className="bp-cite-loc";let h=document.createElement("span");h.className="bp-cite-lang",m.append(u,h);let g=document.createElement("pre"),f=document.createElement("code");g.append(f),a.append(m,g),this.replaceChildren(o,a),this.#t=o,this.#e=a,this.#n=f,this.#r=u,this.#o=h,this.#f()}#p(){let e=me(this.getAttribute("language")||"text");this.#o.textContent=e.label,this.#r.textContent=this.getAttribute("loc")||e.label,this.#t&&(this.#t.firstChild.textContent=this.dataset.bpLabel),this.#n.textContent=this.#i,fe(this.#n,e.grammar)}#f(){let e=()=>{clearTimeout(this.#l),this.#g()},o=()=>{clearTimeout(this.#l),this.#l=setTimeout(()=>this.#c(),140)};this.#t.addEventListener("pointerenter",e),this.#t.addEventListener("pointerleave",o),this.#t.addEventListener("focus",e),this.#t.addEventListener("blur",o),this.#e.addEventListener("pointerenter",()=>clearTimeout(this.#l)),this.#e.addEventListener("pointerleave",o),this.#t.addEventListener("click",()=>{this.#s=!this.#s,this.#s?this.#g():this.#c(!0)}),this.#u=()=>{this.#e.matches(".bp-cite-pop:popover-open, .bp-cite-pop.is-open")&&this.#h()},window.addEventListener("scroll",this.#u,{passive:!0}),window.addEventListener("resize",this.#u,{passive:!0}),document.addEventListener("keydown",c=>{c.key==="Escape"&&this.#b()&&(this.#s=!1,this.#c(!0),this.#t.focus())})}#b(){return this.#e.matches(".bp-cite-pop:popover-open, .bp-cite-pop.is-open")}#g(){if(this.#e.showPopover)try{this.#e.matches(":popover-open")||this.#e.showPopover()}catch{this.#e.classList.add("is-open")}else this.#e.classList.add("is-open");this.#t.setAttribute("aria-expanded","true"),requestAnimationFrame(()=>this.#h())}#c(e=!1){if(!(this.#s&&!e)){if(this.#e.hidePopover&&this.#e.matches(":popover-open"))try{this.#e.hidePopover()}catch{}this.#e.classList.remove("is-open"),this.#t.setAttribute("aria-expanded","false")}}#h(){let e=this.#t.getBoundingClientRect(),o=this.#e.getBoundingClientRect(),c=10,a=10,m="top",u=e.top-o.height-a;u<c&&(u=e.bottom+a,m="bottom");let h=e.left+e.width/2-o.width/2;h=Math.max(c,Math.min(h,window.innerWidth-o.width-c)),this.#e.style.left=`${Math.round(h)}px`,this.#e.style.top=`${Math.round(u)}px`,this.#e.dataset.placement=m;let g=Math.max(14,Math.min(o.width-14,e.left+e.width/2-h));this.#e.style.setProperty("--bp-cite-caret",`${Math.round(g)}px`)}};customElements.get(pe)||customElements.define(pe,Z);function Te(n){let e=n.closest(X);return e instanceof L?e:n.querySelector("pre code")}async function Ce(n){if(!globalThis.isSecureContext||!navigator.clipboard?.writeText)throw new Error("The Clipboard API requires a secure context");await navigator.clipboard.writeText(n)}function q(n,e){let o=U.get(n);o&&clearTimeout(o),n.dataset.bpCopyState=e,n.textContent=e==="copied"?"Copied":"Copy failed",U.set(n,setTimeout(()=>{delete n.dataset.bpCopyState,n.textContent="Copy",U.delete(n)},1800))}document.addEventListener("click",async n=>{let e=n.target instanceof Element?n.target.closest("[data-bp-copy]"):null;if(!(e instanceof HTMLButtonElement))return;n.preventDefault();let o=e.closest(ge),c=o?Te(o):null;if(!c)return q(e,"error");let a=c instanceof L?c.sourceText:c.textContent;try{await Ce(a??""),q(e,"copied")}catch{q(e,"error")}});z.default.highlightAll();
6
+ `);e[0]?.trim()===""&&e.shift(),e.at(-1)?.trim()===""&&e.pop();let o=c=>c.match(/^[\t ]*/)?.[0].length??0,u=e.length>1&&e[0].trim()!==""&&o(e[0])===0,a=e.filter((c,h)=>c.trim()&&!(u&&h===0)).map(o),f=a.length?Math.min(...a):0;return e.map((c,h)=>u&&h===0?c:c.slice(f)).join(`
7
+ `)}function me(n){let e=n.trim().toLowerCase();return he[e]??{grammar:"plain",label:e||"Plain text"}}function fe(n,e){let o=globalThis.Prism,u=o?.languages?.[e],a=u&&e!=="plain";return n.className=`language-${a?e:"none"}`,n.parentElement.className=n.className,n.parentElement.tabIndex=0,a?(n.innerHTML=o.highlight(n.textContent,u,e),!0):!1}var $=class extends HTMLElement{static observedAttributes=["language","open"];static languages=Object.freeze(Object.keys(he));#a;#t;#e;#n;#r=!1;connectedCallback(){this.#r||(this.#n=W(this.textContent??""),this.#s(),this.#r=!0),this.#o()}attributeChangedCallback(){this.#r&&this.#o()}get language(){return this.getAttribute("language")||"text"}set language(e){this.setAttribute("language",e)}get sourceText(){return this.#n??W(this.textContent??"")}#s(){let e=document.createElement("details"),o=document.createElement("summary"),u=document.createElement("span"),a=document.createElement("div"),f=document.createElement("span"),c=document.createElement("button"),h=document.createElement("pre"),g=document.createElement("code");e.className=ge.slice(1),u.className="bp-source-name",u.textContent=this.getAttribute("summary")||"Source",a.className="bp-source-toolbar",f.className="bp-source-language",c.className="bp-source-copy",c.type="button",c.dataset.bpCopy="",c.setAttribute("aria-live","polite"),c.textContent="Copy",g.textContent=this.#n,a.append(f,c),o.append(u,a),h.append(g),e.append(o,h),this.replaceChildren(e),this.#a=e,this.#t=f,this.#e=g}#o(){let e=me(this.language);this.#a.open=this.hasAttribute("open"),this.#t.textContent=e.label,this.#e.textContent=this.#n;let o=fe(this.#e,e.grammar);this.dataset.bpHighlightState=o?"ready":"plain"}};customElements.get(X)||customElements.define(X,$);var pe="bp-cite",_e=0,Te='<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2" y="3" width="12" height="10" rx="1"/><line x1="10" y1="3" x2="10" y2="13"/><polyline points="4.5,6 6.5,8 4.5,10"/></svg>',Z=class extends HTMLElement{static observedAttributes=["language","loc","code","for"];#a=!1;#t;#e;#n;#r;#s;#o;#l="";#i=!1;#u;#d;connectedCallback(){this.#a||(this.#p(),this.#b(),this.#a=!0),this.#g()}attributeChangedCallback(){this.#a&&(this.#p(),this.#g())}#p(){let e=this.querySelector(":scope > template"),o=this.getAttribute("for")?this.ownerDocument.getElementById(this.getAttribute("for")):null,u=this.getAttribute("code");if(u==null&&o&&(u=o.sourceText??o.textContent),u==null&&e&&(u=e.content.textContent),this.#l=W(u??""),!this.#a){let a="";for(let f of this.childNodes)f.nodeName.toLowerCase()!=="template"&&(a+=f.textContent??"");this.dataset.bpLabel=a.trim()||this.getAttribute("loc")||"source"}}get sourceText(){return this.#l}#b(){let e=`bp-cite-${_e+=1}`,o=document.createElement("button");o.type="button",o.className="bp-cite-trigger",o.textContent=this.dataset.bpLabel,o.setAttribute("aria-describedby",e),o.setAttribute("aria-expanded","false");let u=document.createElement("span");u.className="bp-cite-icon",u.setAttribute("aria-hidden","true"),o.append(u);let a=document.createElement("div");a.className="bp-cite-pop",a.id=e,a.setAttribute("role","tooltip"),a.showPopover&&a.setAttribute("popover","manual");let f=document.createElement("div");f.className="bp-cite-head";let c=document.createElement("span");c.className="bp-cite-loc";let h=document.createElement("div");h.className="bp-cite-actions";let g=document.createElement("span");g.className="bp-cite-lang";let m=document.createElement("button");m.type="button",m.className="bp-cite-expand",m.title="Open in side pane",m.setAttribute("aria-label","Open source in side pane"),m.innerHTML=Te,h.append(g,m),f.append(c,h);let y=document.createElement("pre"),b=document.createElement("code");y.append(b),a.append(f,y),this.replaceChildren(o,a),this.#t=o,this.#e=a,this.#n=b,this.#r=c,this.#s=g,this.#o=m,this.#v()}#g(){let e=me(this.getAttribute("language")||"text");this.#s.textContent=e.label,this.#r.textContent=this.getAttribute("loc")||e.label,this.#t&&(this.#t.firstChild.textContent=this.dataset.bpLabel),this.#n.textContent=this.#l,fe(this.#n,e.grammar)}#v(){let e=()=>{clearTimeout(this.#u),this.#m()},o=()=>{clearTimeout(this.#u),this.#u=setTimeout(()=>this.#c(),140)};this.#t.addEventListener("pointerenter",e),this.#t.addEventListener("pointerleave",o),this.#t.addEventListener("focus",e),this.#t.addEventListener("blur",o),this.#e.addEventListener("pointerenter",()=>clearTimeout(this.#u)),this.#e.addEventListener("pointerleave",o),this.#t.addEventListener("click",()=>{if(this.#S()){this.#h();return}this.#i=!this.#i,this.#i?this.#m():this.#c(!0)}),this.#o.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),this.#h()}),this.#d=()=>{this.#e.matches(".bp-cite-pop:popover-open, .bp-cite-pop.is-open")&&this.#f()},window.addEventListener("scroll",this.#d,{passive:!0}),window.addEventListener("resize",this.#d,{passive:!0}),document.addEventListener("keydown",u=>{u.key==="Escape"&&this.#y()&&(this.#i=!1,this.#c(!0),this.#t.focus())})}#y(){return this.#e.matches(".bp-cite-pop:popover-open, .bp-cite-pop.is-open")}#S(){return document.documentElement.hasAttribute("data-bp-cite-pane")}#h(){this.#A(),this.#i=!1,this.#c(!0),this.#t.setAttribute("aria-expanded","true")}#A(){let e=this.#e.querySelector("pre");this.dispatchEvent(new CustomEvent("bp-cite-open",{bubbles:!0,composed:!0,detail:{label:this.dataset.bpLabel,loc:this.getAttribute("loc")||"",language:this.#s.textContent||"",languageId:this.getAttribute("language")||"text",code:this.#l,source:e?e.cloneNode(!0):null}}))}#m(){if(this.#e.showPopover)try{this.#e.matches(":popover-open")||this.#e.showPopover()}catch{this.#e.classList.add("is-open")}else this.#e.classList.add("is-open");this.#t.setAttribute("aria-expanded","true"),requestAnimationFrame(()=>this.#f())}#c(e=!1){if(!(this.#i&&!e)){if(this.#e.hidePopover&&this.#e.matches(":popover-open"))try{this.#e.hidePopover()}catch{}this.#e.classList.remove("is-open"),this.#t.setAttribute("aria-expanded","false")}}#f(){let e=this.#t.getBoundingClientRect(),o=this.#e.getBoundingClientRect(),u=10,a=10,f="top",c=e.top-o.height-a;c<u&&(c=e.bottom+a,f="bottom");let h=e.left+e.width/2-o.width/2;h=Math.max(u,Math.min(h,window.innerWidth-o.width-u)),this.#e.style.left=`${Math.round(h)}px`,this.#e.style.top=`${Math.round(c)}px`,this.#e.dataset.placement=f;let g=Math.max(14,Math.min(o.width-14,e.left+e.width/2-h));this.#e.style.setProperty("--bp-cite-caret",`${Math.round(g)}px`)}};customElements.get(pe)||customElements.define(pe,Z);function Ce(n){let e=n.closest(X);return e instanceof $?e:n.querySelector("pre code")}async function Ie(n){if(!globalThis.isSecureContext||!navigator.clipboard?.writeText)throw new Error("The Clipboard API requires a secure context");await navigator.clipboard.writeText(n)}function q(n,e){let o=U.get(n);o&&clearTimeout(o),n.dataset.bpCopyState=e,n.textContent=e==="copied"?"Copied":"Copy failed",U.set(n,setTimeout(()=>{delete n.dataset.bpCopyState,n.textContent="Copy",U.delete(n)},1800))}document.addEventListener("click",async n=>{let e=n.target instanceof Element?n.target.closest("[data-bp-copy]"):null;if(!(e instanceof HTMLButtonElement))return;n.preventDefault();let o=e.closest(ge),u=o?Ce(o):null;if(!u)return q(e,"error");let a=u instanceof $?u.sourceText:u.textContent;try{await Ie(a??""),q(e,"copied")}catch{q(e,"error")}});z.default.highlightAll();
8
8
  /*! Bundled license information:
9
9
 
10
10
  prismjs/components/prism-core.js:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@obvi/blueprint",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "A classless-first CSS design system for beautiful technical blueprint documents.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -39,10 +39,12 @@
39
39
  "build": "npm run build:code && node scripts/build-package.mjs",
40
40
  "build:code": "node code-highlighting/scripts/build.mjs",
41
41
  "render": "node harness/render.mjs",
42
- "measure": "node harness/measure.mjs && node harness/behavior.mjs",
42
+ "measure": "node harness/measure.mjs && node harness/behavior.mjs && node harness/navigation-clipping.mjs",
43
43
  "verify:package": "node scripts/verify-package.mjs",
44
+ "verify:release-evidence": "node --test harness/release-evidence.test.mjs",
44
45
  "lint:style": "node scripts/lint-style.mjs",
45
- "verify": "npm run build && npm run lint:style && npm run measure && npm run verify:package",
46
+ "release:evidence": "node harness/release-evidence.mjs",
47
+ "verify": "npm run build && npm run lint:style && npm run verify:release-evidence && npm run measure && npm run verify:package",
46
48
  "prepack": "npm run build"
47
49
  },
48
50
  "devDependencies": {